package cn.simple.filetools.poi.excel;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * @author jiangjinjian
 * @date 2024/8/27 16:28
 * @description poi-excel读取监听器
 */
public interface PoiExcelReadListener<T> {

    /**
     * 读取文件路径
     *
     * @param path     路径
     * @param sheetNum 第几个sheet，从0开始
     * @param headRow  列头行数
     */
    void read(String path, int sheetNum, int headRow);

    /**
     * 读取输入流
     *
     * @param is       输入流
     * @param sheetNum 第几个sheet，从0开始
     * @param headRow  列头行数
     */
    void read(InputStream is, int sheetNum, int headRow);

    /**
     * 根据注解读取
     *
     * @param is 输入流
     */
    void readByAnnotation(InputStream is);

    /**
     * 获取读入内存的数据
     *
     * @return
     */
    List<T> getData();

    /**
     * 获取读入内存的表头
     *
     * @return
     */
    List<Map<Integer, String>> getHeadMapList();

}
